package com.wanjia.estate.pojo.tax;

import com.alibaba.fastjson.annotation.JSONField;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AccessLevel;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

@NoArgsConstructor(access = AccessLevel.PRIVATE)
public class A004 {

    @Data
    public static class Taxbizml<T> implements Serializable {
        @JSONField(name = "ZLFSKXXHQLIST")
        private T zlfskxxhqlist;
    }



    @Data
    @EqualsAndHashCode(callSuper = true)
    public static class RequestFour extends CommonRoot<Taxbizml<List<RequestZlfskxxhqlist>>> {

    }

    @Data
    public static class RequestZlfskxxhqlist implements Serializable {
        @JSONField(name = "SJBH")
        private String sjbh;
        @JSONField(name = "SJRQ")
        private Date sjrq;
        @JSONField(name = "ZLFCLFBZ")
        private String zlfclfbz;
        @JSONField(name = "SJGSDQ")
        private String sjgsdq;
        @JSONField(name = "HTBH")
        private String htbh;
        @JSONField(name = "JYUUID")
        private String jyuuid;
        @JSONField(name = "FWUUID")
        private String fwuuid;
        @JSONField(name = "NSRSBH")
        private String nsrsbh;
        @JSONField(name = "FWZLDZ")
        private String fwzldz;
        @JSONField(name = "SBPZXH")
        private String sbpzxh;
    }

//    @Data
//    public static class Response {
//        private int code;
//        private ResponseData data;
//        private String message;
//    }
//    @Data
//    public static class ResponseData implements Serializable {
//        private Taxbizml2 taxbizml;
//    }
//
//    @Data
//    public static class Taxbizml2 implements Serializable {
//        @JSONField(name = "ZLFJSJGLIST")
//        private Zlfjsjglist zlfjsjglist;
//        @JSONField(name = "ZLFSKXXHQLIST")
//        private Zlfskxxhqlist zlfskxxhqlist;
//    }

    @Data
    @EqualsAndHashCode(callSuper = true)
    public static class Response extends CommonRoot<ResponseTaxbizml> {
    }

    @Data
    public static class ResponseTaxbizml implements Serializable {
        @JSONField(name = "ZLFJSJGLIST")
        private List<Zlfjsjglist> zlfjsjglist;
        @JSONField(name = "ZLFSKXXHQLIST")
        private List<Zlfskxxhqlist> zlfskxxhqlist;
    }

    // 返回全局信息
    @Data
    public static class Zlfjsjglist implements Serializable {
        @JSONField(name = "FHM")
        private String fhm;
        @JSONField(name = "FHXX")
        private String fhxx;
        @JSONField(name = "SJBH")
        private String sjbh;
        @JSONField(name = "HTBH")
        private String htbh;
        @JSONField(name = "JYUUID")
        private String jyuuid;
        @JSONField(name = "FWUUID")
        private String fwuuid;
    }

    // 计税信息列表
    @Data
    public static class Zlfskxxhqlist implements Serializable {
        @JSONField(name = "NSRMC")
        private String nsrmc;
        @JSONField(name = "ZSXMMC")
        private String zsxmmc;
        @JSONField(name = "ZSPMMC")
        private String zspmmc;
        @JSONField(name = "ZSZMMC")
        private String zszmmc;
        @JSONField(name = "YSX")
        private BigDecimal ysx;
        @JSONField(name = "JCX")
        private BigDecimal jcx;
        @JSONField(name = "Sl")
        private String sl;
        @JSONField(name = "YNSE")
        private BigDecimal ynse;
        @JSONField(name = "JMXZ")
        private String jmxz;
        @JSONField(name = "JMSE")
        private String jmse;
        @JSONField(name = "YBTSE")
        private BigDecimal ybtse;
    }
}
